package com.example.practice20240802;

import android.util.Log;

import androidx.annotation.NonNull;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleEventObserver;  
import androidx.lifecycle.LifecycleOwner;  
  
public class MyActivityLifecycleObserver implements LifecycleEventObserver {  
    private static final String TAG = "MyActivityLifecycle";  
  
    @Override  
    public void onStateChanged(@NonNull LifecycleOwner source, @NonNull Lifecycle.Event event) {
        switch (event) {  
            case ON_CREATE:  
                Log.d(TAG, "Activity onCreate");  
                break;  
            case ON_START:  
                Log.d(TAG, "Activity onStart");  
                break;  
            case ON_RESUME:  
                Log.d(TAG, "Activity onResume");  
                break;  
            case ON_PAUSE:  
                Log.d(TAG, "Activity onPause");  
                break;  
            case ON_STOP:  
                Log.d(TAG, "Activity onStop");  
                break;  
            case ON_DESTROY:  
                Log.d(TAG, "Activity onDestroy");  
                // 在这里，你通常会移除这个观察者，但对于 LifecycleEventObserver，  
                // 当 LifecycleOwner（如 Activity）被销毁时，它会自动被移除。  
                break;  
            case ON_ANY:  
                // 注意：ON_ANY 不是一个实际的事件，这里只是为了说明。  
                // 你不会直接收到 ON_ANY 事件，但你可以通过重写 onStateChanged 来捕获所有事件。  
                break;  
            default:  
                Log.d(TAG, "Unhandled event: " + event.name());  
        }  
    }  
}